package com.wang.config;

import com.sun.org.apache.bcel.internal.util.ClassPath;
import com.wang.pojo.Car;
import com.wang.pojo.MyBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.ImportResource;

/**
 * @author :  DongZheng Wang
 * @PROJECT_NAME: springbootTest
 * @date :  2022-10-30 22:50
 **/
//告诉springboot这是一个配置类==配置文件
//这是一个配置类，以前使用spring里面bean进行配置和赋值
//配置类本省也是组件默认为true来检查带对象是不是同一个对象会产生新的对象
//
@Configuration
//@ConditionalOnBean(name = "myBean")
//@ConditionalOnMissingBean(name = "myBean")//和上面的作用刚好相反
@ImportResource("classpath:bean1.xml")//这个注解就是把资源文件拿到后加载到容器中最后变成组件
@EnableConfigurationProperties(Car.class)//开启car配置绑定功能2.把这个对象组件自动注册到容器中compent二选一
public class Myconfig {
//   @ConditionalOnBean(name="myBean")///如果在项目里面的话就是有依赖去掉依赖就使用该注解,有了其他才能给其他组件显然是俩个才行
    @Bean("myBean")//给容器中添加组件，以方法名作为组件的id。返回类型就是组件类型，返回值，就是组件在容器中的实列
    public MyBean myBean() {
        System.out.println("myBean~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
        return new MyBean(12,"spring");
    }
}
